﻿Imports VN.INS.BL.BC
Imports System.Data
Imports System.Web
Imports System.IO

Partial Class Devida_MantenimientoPeriodo
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If (Not (Page.IsPostBack)) Then
            'llenado de datos
            CargarPeriodo()
            LISTA_ESTADO()
            LISTA_MES()
            LIMPIAR()
            LIMPIAR2()
            LIMPIAR3()
        End If
    End Sub

    'carga combo periodo
    Public Sub CargarPeriodo()
        Dim objCPBC As MantenimientoPeriodoBC = New MantenimientoPeriodoBC
        Dim objDt As DataTable
        objDt = objCPBC.ListaPeriodo()
        gv_periodo.DataSource = objDt
        gv_periodo.DataBind()
    End Sub

    'carga combo estado
    Public Sub LISTA_ESTADO()
        Dim ObjLEBC As GeneralBC
        Dim ObjData As DataTable
        ObjLEBC = New GeneralBC
        ObjData = New DataTable
        ObjData = ObjLEBC.ListaTablaGeneral("ESTADO_PERIODO")
        Dim drestadorow As DataRow = ObjData.NewRow()
        drestadorow("DESCRIPCION") = "--Seleccione--"
        drestadorow("CODIGO") = "all"
        ObjData.Rows.Add(drestadorow)
        ddlestado.DataSource = ObjData
        ddlestado.DataTextField = "DESCRIPCION"
        ddlestado.DataValueField = "CODIGO"
        ddlestado.DataBind()
        ddlestado.SelectedValue = "all"
    End Sub

    'carga combo mes
    Public Sub LISTA_MES()
        Dim ObjLMBC As MantenimientoPeriodoBC
        Dim ObjData As DataTable
        ObjLMBC = New MantenimientoPeriodoBC
        ObjData = New DataTable
        ObjData = ObjLMBC.ListaMes

        Dim drMESrow As DataRow = ObjData.NewRow()
        drMESrow("DESCRIPCION") = "--Seleccione--"
        drMESrow("CODIGO") = "all"
        ObjData.Rows.Add(drMESrow)
        ddl_mes.DataSource = ObjData
        ddl_mes.DataTextField = "DESCRIPCION"
        ddl_mes.DataValueField = "CODIGO"
        ddl_mes.DataBind()
    End Sub

    Protected Sub gv_periodo_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv_periodo.RowDataBound
        ' FORMATEA ROWS
        If e.Row.RowType = DataControlRowType.DataRow Then
            ' ASIGNA EVENTOS
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gv_periodo, "Select$" + e.Row.RowIndex.ToString)

            Select Case e.Row.Cells(6).Text
                Case "ACTIVO"
                    e.Row.Cells(6).BackColor = Drawing.Color.GreenYellow
                Case Else
            End Select

            'Esto es para el campo Año Firma 
            If e.Row.Cells(4).Text = "2013" Then
                'e.Row.Cells(2).ForeColor = Drawing.Color.White
                e.Row.Cells(4).BackColor = Drawing.Color.DarkTurquoise
            Else
                'e.Row.Cells(2).ForeColor = Drawing.Color.DarkGreen
                e.Row.Cells(4).BackColor = Drawing.Color.LightGray
            End If
        End If

    End Sub

    Protected Sub gv_periodo_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gv_periodo.SelectedIndexChanged
        'llenado de cabecera con datos de fila seleccionada
        txtcodigo.Enabled = False
        chkb.Checked = False
        Dim hfEstado As HiddenField = CType(gv_periodo.SelectedRow.FindControl("hfCodEstado"), HiddenField)
        Dim hfMes As HiddenField = CType(gv_periodo.SelectedRow.FindControl("hfCodMES"), HiddenField)
        txtTP.Text = gv_periodo.SelectedRow.Cells(1).Text
        txtperiodo.Text = gv_periodo.SelectedRow.Cells(3).Text
        ddl_mes.SelectedValue = hfMes.Value
        ddlestado.SelectedValue = hfEstado.Value
        txt_anhio.Text = gv_periodo.SelectedRow.Cells(4).Text
        txtcodigo.Text = gv_periodo.SelectedRow.Cells(2).Text
        Dim hfPERIODO As HiddenField = CType(gv_periodo.SelectedRow.FindControl("hfPERIODO"), HiddenField)
        ViewState("PRDO") = hfPERIODO.Value.ToString
    End Sub
    
    Public Sub LIMPIAR()
        txtperiodo.Text = ""
    End Sub

    Public Sub LIMPIAR2()
        txt_anhio.Text = ""
        ddl_mes.SelectedValue = "all"
    End Sub

    Public Sub LIMPIAR3()
        ddlestado.SelectedValue = "all"
        txtTP.Text = ""
    End Sub

    Protected Sub chkb_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkb.CheckedChanged
        'si se marca como nuevo se limpia cabecera periodo
        If chkb.Checked = True Then
            gv_periodo.SelectedIndex = -1
            LIMPIAR()
            LIMPIAR2()
            LIMPIAR3()
            txtcodigo.Enabled = True
            txtcodigo.Text = ""
        End If
    End Sub

    'insercion de periodo
    Public Sub insertarMPeriodo(ByVal PRDO As String, ByVal DESC As String, ByVal ANHIO As String, ByVal MES As String,
                                ByVal TP As String, ByVal EST As String)
        Dim objIMP As MantenimientoPeriodoBC
        Try
            objIMP = New MantenimientoPeriodoBC
            objIMP.insertarMPeriodo(PRDO, DESC, ANHIO, MES, TP, EST)
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

    'edicion de periodo
    Public Sub editarMPeriodo(ByVal PRDO As String, ByVal DESC As String, ByVal ANHIO As String, ByVal MES As String,
                                ByVal TP As String, ByVal EST As String)
        Dim objEMP As MantenimientoPeriodoBC
        Try
            objEMP = New MantenimientoPeriodoBC
            objEMP.editarMPeriodo(PRDO, DESC, ANHIO, MES, TP, EST)
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

    'eliminacion de periodo
    Public Sub eliminarperiodo(ByVal PRDO As String)
        Dim objEPBC As MantenimientoPeriodoBC
        Try
            objEPBC = New MantenimientoPeriodoBC
            objEPBC.eliminarperiodo(PRDO)
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

    Protected Sub btn_guardar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btn_guardar.Click
        Dim A As String
        A = "Editable"
        If chkb.Checked = True Then
            A = "Insertar"
        End If
        If A = "Insertar" Then  'Insertar
            'Insertamos el peeriodo si todos sus campos han sido ingresados.
            If txtTP.Text = "" Or ddlestado.SelectedValue = "all" Or txtcodigo.Text = "" Or ddl_mes.SelectedValue = "all" Or txtperiodo.Text = "" Or txt_anhio.Text = "" Then
                alerta.Mostrar_Alerta("Error", "Llene todos los campos")
                Exit Sub
            Else
                insertarMPeriodo(UCase(txtcodigo.Text), UCase(txtperiodo.Text), txt_anhio.Text, ddl_mes.SelectedValue.ToString, UCase(txtTP.Text),
                                 ddlestado.SelectedValue.ToString)
                alerta.Mostrar_Alerta("Aviso", "Registro Guardado ")
                CargarPeriodo()
                txtcodigo.Text = ""
                LIMPIAR()
                LIMPIAR2()
                LIMPIAR3()
            End If
        Else                    'Editar
            'Editamos el periodo seleccionado
            If gv_periodo.SelectedIndex = -1 Then
                alerta.Mostrar_Alerta("Error", "Debe seleccionar un Registro o elegir la opcion de nuevo")
                Exit Sub
            Else
                editarMPeriodo(ViewState("PRDO"), UCase(txtperiodo.Text), txt_anhio.Text, ddl_mes.SelectedValue.ToString, UCase(txtTP.Text), ddlestado.SelectedValue.ToString)
                alerta.Mostrar_Alerta("Aviso", "Los Datos se Guardaron Correctamente")
            End If
        End If
        'cargar grilla y limpiar cabecera
        CargarPeriodo()
        chkb.Checked = False
        txtcodigo.Text = ""
        LIMPIAR()
        LIMPIAR2()
        LIMPIAR3()
    End Sub

    Protected Sub btn_eliminar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btn_eliminar.Click
        Dim objCUBC As MantenimientoPeriodoBC
        Dim objDt As DataTable
        objCUBC = New MantenimientoPeriodoBC
        'buscamos si el periodo esta siendo usado
        objDt = objCUBC.contarperiodo(ViewState("PRDO"))
        Dim UTILISADO As String
        UTILISADO = objDt.Rows(0).Item("NUMERO")
        If gv_periodo.SelectedIndex = -1 Then
            alerta.Mostrar_Alerta("Error", "Debe seleccionar un Registro")
            Exit Sub
        Else
            ' si no es usado se elimina
            If UTILISADO = 0 Then
                eliminarperiodo(ViewState("PRDO"))
                alerta.Mostrar_Alerta("Aviso", " Registro Eliminado")
            Else
                alerta.Mostrar_Alerta("Aviso", "Este Registro esta siendo usado y no se puede Eliminar")
            End If
        End If
        CargarPeriodo()
        LIMPIAR()
        LIMPIAR2()
        LIMPIAR3()
        txtcodigo.Text = ""
    End Sub

    'salir
    Protected Sub btnsalir_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnsalir.Click
        Response.Redirect("Inicio.aspx")
    End Sub

End Class
